home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / 4dostool / 4laser.zip / 4LASER.BTM next >
Text File  |  1992-04-16  |  3KB  |  215 lines

  1. @echo off
  2. :    LASER - Sends mnemonic printer commands to a LaserJet Series II printer.
  3. :
  4. :    History:
  5. :    16-Apr-92    MGiguere    Added check & definition for WHILE aliases.
  6. :    06-Apr-92    MGiguere    Created.
  7. :
  8. setlocal
  9. :  dev: default printer port
  10. set dev=lpt1
  11. set pm=1
  12. iff NOT isalias while then
  13.     alias while=`iff %& then`
  14.     alias endw*hile=`goto %1^endiff`
  15. endiff
  16. :    parse command line into printer commands
  17. :loop
  18. while %# GE %pm
  19. :    get token
  20.     gosub lex
  21. if "%debug" NE "" echo func=%func arg=%arg
  22. :    dispatch selected printer code generator
  23.     gosub %func
  24.     gosub exec
  25. endw loop
  26. quit
  27.  
  28. :lex
  29. :    return string token(s) from current position.
  30. : look for =
  31. set i=%@index[%[%pm],=]
  32. iff %i LT 0 then
  33. :    function name only
  34.     set func=%[%pm]
  35.     set arg=
  36. else
  37. :    function and arg. (func=arg)
  38.     set func=%@substr[%[%pm],0,%i]
  39.     set arg=%@substr[%[%pm],%@eval[%i+1]]
  40. endiff
  41. : update arg pointer
  42. set pm=%@eval[%pm+1]
  43. return
  44.  
  45. :exec
  46. :    execute a code string by sending it to the default device
  47. if "%code" NE "" echos %code >%dev
  48. if "%debug" NE "" echo code=%code
  49. return
  50. :
  51. :    ACTION SECTION BEGINS HERE
  52. :
  53. :c
  54. :co
  55. :cour
  56. :courier
  57. set code=eEe&l6De(10Ue(s0p10h12v0s0b3Tr
  58. return
  59.  
  60. :l
  61. :lin
  62. :line
  63. :linep
  64. :lineprint
  65. :lineprinter
  66. set code=eEe&l10De(10Ue(s0p16.66h8.5v0s0b0Tr
  67. return
  68. :ty
  69. :typ
  70. :type
  71. :typef
  72. :typefa
  73. :typefac
  74. :typeface
  75. :    set typeface=[range: 0 to 10]
  76. :    0 = line printer
  77. :    1 = Pica
  78. :    2 = Elite
  79. :    3 = Courier
  80. :    4 = Helvetica
  81. :    5 = Times Roman
  82. :    6 = Gothic
  83. :    7 = Script
  84. :    8 = Prestige
  85. :    9 = Caslon
  86. :  10 = Orator
  87. iff %arg GE 0 .AND. %arg LE 10 then
  88.     set code=e(s%arg%Tr
  89. else
  90.     set code=
  91.     echo Unknown Typeface: %arg, must be value: [0-10]
  92.     text
  93.      0 = line printer
  94.      1 = Pica
  95.      2 = Elite
  96.      3 = Courier
  97.      4 = Helvetica
  98.      5 = Times Roman
  99.      6 = Gothic
  100.      7 = Script
  101.      8 = Prestige
  102.      9 = Caslon
  103.     10 = Orator
  104.     endtext
  105. endiff
  106. return
  107. :por
  108. :port
  109. :portr
  110. :portrait
  111. :    select portrait page orientation
  112. set code=e&l0Or
  113. return
  114. :la
  115. :lan
  116. :land
  117. :lands
  118. :landsc
  119. :landscap
  120. :landscape
  121. :    select landscape page orientation
  122. set code=e&l1Or
  123. return
  124. :i
  125. :it
  126. :ita
  127. :ital
  128. :italic
  129. set code=e(s1Sr
  130. return
  131. :ro
  132. :rom
  133. :roman
  134. set code=e(s0Sr
  135. return
  136. :b
  137. :bo
  138. :bol
  139. :bold
  140. :    set a bold stroke weight
  141. set code=e(s3Br
  142. return
  143. :med
  144. :medi
  145. :medium
  146. :    set normal stroke weight
  147. set code=e(s0Br
  148. return
  149. :lig
  150. :ligh
  151. :light
  152. :lite
  153. :    set a light stroke weight
  154. set code=e(s-3Br
  155. return
  156. :we
  157. :wei
  158. :weig
  159. :weigh
  160. :weight
  161. :    generic set of stroke weight=[range -7 to +7]
  162. set code=e(s%arg%Br
  163. return
  164. :sy
  165. :sym
  166. :symb
  167. :symbol
  168. :symbols
  169. :symbolset
  170. :    symbolset=[0N|0U|8N|8U|10N|10U|11N|11U]
  171. set code=e(%argr
  172. return
  173. :cpi
  174. :pi
  175. :pit
  176. :pitch
  177. set code=e(s%arg%Hr
  178. return
  179. :v
  180. :ver
  181. :vert
  182. :vertic
  183. :vertical
  184. :verticalp
  185. :verticalpi
  186. :verticalpit
  187. :verticalpitch
  188. :    set vertical lines per inch
  189. set code=e&l%arg%Dr
  190. return
  191. :po
  192. :poi
  193. :poin
  194. :point
  195. :points
  196. :pointsi
  197. :pointsiz
  198. :pointsize
  199. :    set point size
  200. set code=e(s%arg%vr
  201. return
  202. :re
  203. :res
  204. :rese
  205. :reset
  206. :    reset laser printer
  207. set code=eEr
  208. return
  209. :dev
  210. :device
  211. :    sets the device port
  212. set dev=%arg
  213. set code=
  214. return
  215.